package com.atmilan.quartz.service;

import java.util.List;

import com.atmilan.quartz.constant.enums.ProductTypeEnum;
import com.atmilan.quartz.model.dto.crmeb.StoreProductCrmebRequest;
import com.atmilan.quartz.model.entity.crmeb.StoreProduct;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * cremb商品接口
 * @Description: 
 * @author daigb
 * @date 2021-01-08
 */
public interface IStoreProductService extends IService<StoreProduct> {

    /**
     * 保存产品信息
     * @param storeProductCrmebRequest
     * @return
     */
    boolean save(StoreProductCrmebRequest storeProductCrmebRequest);

    /**
     * 更新产品信息
     * @param storeProductCrmebRequest
     * @return
     */
    boolean update(StoreProductCrmebRequest storeProductCrmebRequest);

    /**
     * 通过商品编码查找上是否存在
     * @param barCode
     * @return
     */
    StoreProduct getByBarCode(String barCode, Integer suppliersId, String keyword);

    /**
     * 清空指定表
     * @Description:  
     * @author daigb 
     * @param 
     * @return void
     * @throws
     */
    void deleteAll();
    
    /**
     * 未更新的sku置空
     * @author daigb
     * @date:  2021-12-02 10:27
     */
    void downloadSku(Integer isEurope);
    
    /**
     * 删除图搜中商品
     * @author daigb
     * @date:  2022-06-24 15:12
     */
    void delSeachImage(ProductTypeEnum type);
    
    /**
     * 指定删除图搜商品
     * @author daigb
     * @date:  2022-06-24 15:27
     */
    void delSeachImageByBarcode(String barcode);
    
    /**
     * 保存外部商品
     * @Description:  
     * @author daigb 
     * @param 
     * @return void
     * @throws
     */
    void saveOtProduct(StoreProductCrmebRequest storeProductCrmebRequest, StoreProduct storeProduct, Integer stock);

    void testFanyi();

}
